const { DataTypes } = require('sequelize')
const seq = require('../db/seq')

// 创建模型   可以给表加前缀因为其自动化推断表名称，也可以让他不推断
const Article = seq.define('Article', {
    // id 自动创建
    html: {
        // 去文档查看
        type: DataTypes.TEXT,
        // 约束是否为空
        allowNull: false,
        comment: 'html文本'
    },
    markedown: {
        type: DataTypes.TEXT,
        // 约束是否为空
        allowNull: true,
        comment: 'markedown文本'
    },
    title: {
        type: DataTypes.CHAR(64),
        allowNull: false,
        comment: '文章标题'
    },
    username: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '用户名'
    },
    user_id: {
        type: DataTypes.STRING,
        // 约束是否为空
        allowNull: false,
        comment: '用户id',
    },
    date: {
        type: DataTypes.DATE,
        // 约束是否为空
        allowNull: false,
        comment: '发布日期',
    },
    type: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '文章类型',
    },
    column: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '文章专栏',
    },
    cover: {
        type: DataTypes.STRING,
        allowNull: true,
        comment: '文章封面',
    },
    publish: {
        type: DataTypes.INTEGER,
        allowNull: false,
        comment: '是否发布',
        defaultValue: 0,
    },
    desc: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '文章简述',
    },
    check: {
        type: DataTypes.INTEGER,
        allowNull: true,
        comment: '审核状态(0:未审核1:审核通过2:审核未通过)',
    },
    verifier:{
        type: DataTypes.STRING,
        allowNull: true,
        comment: '审核人员',
    },
    checkdate:{
        type: DataTypes.DATE,
        allowNull: true,
        comment: '审核日期',
    },
    reason:{
        type: DataTypes.STRING,
        allowNull: true,
        comment: '审核失败原因',
    }
})

// force如果之前存在这张表 会删了重建 文档：模型重建  用过后要注释掉
// node src/model/article.model.js 创建数据库表
// Article.sync({ force: true })

module.exports = Article